package com.easyfile.easyfilemaster.utils;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @author chenpeman
 * @date 2022年05月16日 21:08
 */
public class CommonUtils {

    /**
     * 通过完整的文件名截取文件名
     *
     * @param originalName the original name
     * @return the string
     */
    public static String getFileName(String originalName){
        if (originalName==null||originalName.equals("")){
            return null;
        }
        int i = originalName.lastIndexOf('.');
        if (i==-1){
            return originalName;
        }
        return originalName.substring(0,i);
    }

    /**
     * 通过完整的文件名截取文件类型
     *
     * @param originalName the original name
     * @return the string
     */
    public static String getFileType(String originalName){
        if (originalName==null||originalName.equals("")){
            return null;
        }
        int i = originalName.lastIndexOf('.');
        if (i==-1){
            return null;
        }
        return originalName.substring(i+1);
    }

    public static final Set<String> imageList = new HashSet<String>();
    static {
        imageList.add("jpg");
        imageList.add("jpeg");
        imageList.add("JPG");
        imageList.add("JPEG");
        imageList.add("png");
        imageList.add("PNG");
        imageList.add("gif");
        imageList.add("GIF");
        imageList.add("bmp");
        imageList.add("BMP");
        imageList.add("raw");
        imageList.add("RAW");
        imageList.add("tiff");
        imageList.add("TIFF");
    }
    public static final Set<String> audioList = new HashSet<String>();
    static {
        audioList.add("mp3");
        audioList.add("MP3");
        audioList.add("mpeg");
        audioList.add("MPEG");
        audioList.add("wma");
        audioList.add("WMA");
        audioList.add("aac");
        audioList.add("AAC");
        audioList.add("wav");
        audioList.add("WAV");
        audioList.add("mp2");
        audioList.add("MP2");
        audioList.add("flac");
        audioList.add("FLAC");
        audioList.add("mov");
        audioList.add("MOV");
    }
    public static final Set<String> videoList = new HashSet<String>();
    static {
        videoList.add("wmv");
        videoList.add("WMV");
        videoList.add("asf");
        videoList.add("ASF");
        videoList.add("asx");
        videoList.add("ASX");
        videoList.add("rm");
        videoList.add("RM");
        videoList.add("rmvb");
        videoList.add("RMVB");
        videoList.add("mpg");
        videoList.add("MPG");
        videoList.add("mpeg");
        videoList.add("MPEG");
        videoList.add("mpe");
        videoList.add("MPE");
        videoList.add("3gp");
        videoList.add("3GP");
        videoList.add("mp4");
        videoList.add("MP4");
        videoList.add("m4v");
        videoList.add("M4V");
        videoList.add("avi");
        videoList.add("AVI");
        videoList.add("mkv");
        videoList.add("MKV");
        videoList.add("flv");
        videoList.add("FLV");
    }
    public static final Set<String> documentList = new HashSet<String>();
    static {
        documentList.add("txt");
        documentList.add("TXT");
        documentList.add("doc");
        documentList.add("DOC");
        documentList.add("docx");
        documentList.add("DOCX");
        documentList.add("xls");
        documentList.add("XLS");
        documentList.add("xlsx");
        documentList.add("XLSX");
        documentList.add("pdf");
        documentList.add("PDF");
        documentList.add("ppt");
        documentList.add("PPT");
        documentList.add("pptx");
        documentList.add("PPTX");
        documentList.add("html");
        documentList.add("HTML");
        documentList.add("js");
        documentList.add("JS");
        documentList.add("md");
        documentList.add("MD");
        documentList.add("java");
        documentList.add("JAVA");
        documentList.add("c");
        documentList.add("C");
        documentList.add("cpp");
        documentList.add("CPP");
        documentList.add("sql");
        documentList.add("SQL");
    }
    public static final Set<String> zipList = new HashSet<String>();
    static {
        zipList.add("zip");
        zipList.add("ZIP");
        zipList.add("rar");
        zipList.add("RAR");
        zipList.add("7z");
        zipList.add("7Z");
        zipList.add("tar");
        zipList.add("TAR");
    }
    public static final int IMAGE_TYPE=1;
    public static final int AUDIO_TYPE=2;
    public static final int VIDEO_TYPE=3;
    public static final int DOCUMENT_TYPE=4;
    public static final int ZIP_TYPE=5;
    public static final int ANOTHER_TYPE=6;

    /**
     * 根据类型返回类型id
     *
     * @param type the type
     * @return the integer
     */
    public static Integer getTypeId(String type){
        if (type==null||type.equals("")){
            return 6;
        }
        if (imageList.contains(type)){
            return IMAGE_TYPE;
        }
        if (audioList.contains(type)){
            return AUDIO_TYPE;
        }
        if (videoList.contains(type)){
            return VIDEO_TYPE;
        }
        if (documentList.contains(type)){
            return DOCUMENT_TYPE;
        }
        if (zipList.contains(type)){
            return ZIP_TYPE;
        }
        return ANOTHER_TYPE;
    }
}
